/*
 * LogoutManagedBean.java
 * Versão: 1.0
 * Data de Criação : 18/08/2011
 * Copyright (c) 2008-2011 Universidade Estadual de
 * Londrina - UEL.
 * Rodovia Celso Garcia Cid, Cidade Universitária,
 * Londrina, Paraná
 * Brasil
 * Todos os direitos reservados.
 *
 * Este software é de informação confidenciais de
 * propriedade da UEL Univesidade Estadual de Londrina.
 * ("Informações Confidenciais "). Você não poderá
 * compartilhar estas informações por ser de carater
 * confidencial e usará somente em acordo com os termos de
 * licençada UEL
 */
package br.uel.ati.grad.bean;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;

/**
 * Esta classe é a responsável por efetuar o logout do usuário na sessão.
 *
 * @author Humberto Ferreira da Luz Junior
 * @version 1.0
 */
@ManagedBean
@SessionScoped
public class SessaoManagedBean {
    /**
     * Determina se a mensagem de boas vindas será exibida quando a página
     * index.xhtml for exibida pela primeira vez, quando o valor da variável
     * passa a ser false para que a mensagem não seja repetida.
     */
    private Boolean mostrarMensagemBoasVindas = true;
    
    public void createMessage()
    {
        
    }
    
    /**
     * Realiza o logout do usuário, redirecionando-o para a página de login e invalidando sua sessão,
     * fazendo com que uma nova sessão seja criada.
     */
    public void logout() {
        try {
            FacesContext.getCurrentInstance().getExternalContext().redirect("/ExampleATIProject-war/Login.xhtml");
            HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
            request.logout();
            request.getSession().invalidate();
        } catch (IOException ex) {
            Logger.getLogger(SessaoManagedBean.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ServletException ex) {
            Logger.getLogger(SessaoManagedBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
